# -*- mode: org; fill-column: 80;
#+TITLE: Dragon Descendants Website
#+SUBTITLE: a community website
#+AUTHOR: Zelphir Kaltstahl
#+EMAIL: zelphirkaltstahl@posteo.de
#+DATE: <2021-02-28 Sun>
#+KEYWORDS: guile GNU website
#+STARTUP: content indent align inlineimages hideblocks entitiesplain nologdone nologreschedule nologredeadline nologrefile
#+TODO: OUTDATED TODO INPROGRESS | DONE
#+LANGUAGE: English
#+PRIORITIES: A E E
#+EXCLUDE_TAGS: noexport
#+OPTIONS: ^:{}
#+OPTIONS: H:10
#+OPTIONS: toc:2
#+OPTIONS: tags:nil
#+OPTIONS: tasks:t
#+OPTIONS: toc:nil
#+OPTIONS: H:6
#+OPTIONS: p:nil
#+OPTIONS: pri:nil
#+OPTIONS: prop:nil
#+OPTIONS: todo:t
#+OPTIONS: stat:nil
#+OPTIONS: |:t
#+OPTIONS: inline:nil
#+OPTIONS: date:t

* Dependencies

+ GNU Guile as programming language
+ ~guile-fslib~ for handling of locations of static files in the file system
+ ~guile-fibers~ for the concurrent web server

** Environment creation

The dependencies specified above can be installed using GNU Guix and the following specifications for an environment:

#+INCLUDE: "guix-env.org" :minlevel 3

* Usage

** Starting the server

1. activate the GNU Guix environment:

   #+begin_src shell
   bash guix-env/env.bash
   #+end_src

2. Start the server:

   #+begin_src shell
   # GUILE_LOAD_PATH="$(pwd)/app:${GUILE_LOAD_PATH}"
   # once guile-fslib is on GNU Guix:
   # guile -L app app/main.scm
   # for now:
   pushd app
   guile -L . -L lib/fslib --fresh-auto-compile main.scm
   #+end_src

3. The website should now be reachable at =http://localhost:8080=.

* OUTDATED Unit tests

To run the unit tests, issue the ~guile~ command for the specific tests as follows:

#+begin_src shell :results output
guile -L . test/test-path-handling.scm
#+end_src

* TODO To do [0/4]

** INPROGRESS Get guile-fslib on GNU Guix

** TODO Change dependencies to include guile-fslib

** TODO Make a plan about what to put on the website

** TODO Write actual website using responsive design
